﻿using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;

namespace Kaskelot.Services.Model
{
	public class KaskelotContext : KaskelotEntities
	{
		protected Guid ValId { get; set; }

		public KaskelotContext(Guid valId)
		{
			if (valId == Guid.Empty)
				throw new ArgumentException();

			ValId = valId;
		}

		public new IQueryable<BemanningGrupp> BemanningGrupp { get { return base.BemanningGrupp.Where(x => x.ValId == ValId); } }
		public new IQueryable<BemanningValdistrikt> BemanningValdistrikt { get { return base.BemanningValdistrikt.Where(x => x.ValId == ValId); } }
		public new IQueryable<Blankett> Blankett { get { return base.Blankett.Where(x => x.ValId == ValId); } }
		public new IQueryable<BlankettFalt> BlankettFalt { get { return base.BlankettFalt.Where(x => x.ValId == ValId); } }
		public new IQueryable<BlankettPost> BlankettPost { get { return base.BlankettPost.Where(x => x.ValId == ValId); } }
		public new IQueryable<Byggnad> Byggnad { get { return base.Byggnad.Where(x => x.ValId == ValId); } }
		public new IQueryable<ByggnadHandelseLogg> ByggnadHandelseLogg { get { return base.ByggnadHandelseLogg.Where(x => x.ValId == ValId); } }
		public new IQueryable<ByggnadTyp> ByggnadTyp { get { return base.ByggnadTyp.Where(x => x.ValId == ValId); } }

		public new IQueryable<Falt> Falt { get { return base.Falt.Where(x => x.ValId == ValId); } }
		public new IQueryable<FaltAlternativ> FaltAlternativ { get { return base.FaltAlternativ.Where(x => x.ValId == ValId); } }
		public new IQueryable<FaltData> FaltData { get { return base.FaltData.Where(x => x.ValId == ValId); } }
		public new IQueryable<Funktion> Funktion { get { return base.Funktion.Where(x => x.ValId == ValId); } }
		public new IQueryable<Forsamling> Forsamling { get { return base.Forsamling.Where(x => x.ValId == ValId); } }

		public new IQueryable<Grupp> Grupp { get { return base.Grupp.Where(x => x.ValId == ValId); } }

		public new IQueryable<Kurs> Kurs { get { return base.Kurs.Where(x => x.ValId == ValId); } }
		public new IQueryable<KursTillfalle> KursTillfalle { get { return base.KursTillfalle.Where(x => x.ValId == ValId); } }

		public new IQueryable<Lokal> Lokal { get { return base.Lokal.Where(x => x.ValId == ValId); } }

		public new IQueryable<Materiel> Materiel { get { return base.Materiel.Where(x => x.ValId == ValId); } }
		public new IQueryable<MaterielTyp> MaterielTyp { get { return base.MaterielTyp.Where(x => x.ValId == ValId); } }
		public new IQueryable<MaterielTypMaterielTyp> MaterielTypMaterielTyp { get { return base.MaterielTypMaterielTyp.Where(x => x.ValId == ValId); } }

		public new IQueryable<Person> Person { get { return base.Person.Where(x => x.ValId == ValId); } }
		public new IQueryable<PersonByggnad> PersonByggnad { get { return base.PersonByggnad.Where(x => x.ValId == ValId); } }
		public new IQueryable<PersonHandelseLogg> PersonHandelseLogg { get { return base.PersonHandelseLogg.Where(x => x.ValId == ValId); } }
		public new IQueryable<PersonKursTillfalle> PersonKursTillfalle { get { return base.PersonKursTillfalle.Where(x => x.ValId == ValId); } }
		public new IQueryable<PersonPersonTyp> PersonPersonTyp { get { return base.PersonPersonTyp.Where(x => x.ValId == ValId); } }
		public new IQueryable<PersonTyp> PersonTyp { get { return base.PersonTyp.Where(x => x.ValId == ValId); } }

		public new IQueryable<Skylt> Skylt { get { return base.Skylt.Where(x => x.ValId == ValId); } }
		public new IQueryable<Stadsdel> Stadsdel { get { return base.Stadsdel.Where(x => x.ValId == ValId); } }

		public new IQueryable<Val> Val { get { return base.Val.AsQueryable<Val>(); } }
		public new IQueryable<Valdistrikt> Valdistrikt { get { return base.Valdistrikt.Where(x => x.ValId == ValId); } }
		public new IQueryable<Valkrets> Valkrets { get { return base.Valkrets.Where(x => x.ValId == ValId); } }
	}
}
